//#define _USE_MATH_DEFINES
//
//
//#include <GL/glew.h>
//#include <GL/freeglut.h>
//#include <assert.h>
//#include <iostream>
//
//#include "GraphicsWindow.h"
//
//#define GL_CHECK_ERRORS assert(glGetError()== GL_NO_ERROR);
//
//using namespace Render;
//using namespace std;
//
//GraphicsWindow::GraphicsWindow()
//{
//	
//}
//
//GraphicsWindow::~GraphicsWindow()
//{
//	std::cout << "window destroyed." << std::endl;
//}
//
//void GraphicsWindow::OnInit(int argc, char** argv)
//{
//	//freeglut initialization calls
//	glutInit(&argc, argv);
//	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
//	glutInitContextVersion(3, 3);
//	glutInitContextFlags(GLUT_CORE_PROFILE | GLUT_DEBUG);
//	glutInitWindowSize(860, 768);
//	glutCreateWindow("Picking using scene intersection queries - OpenGL 3.3");
//
//	//glew initialization
//	glewExperimental = GL_TRUE;
//	GLenum err = glewInit();
//	if (GLEW_OK != err)	{
//		cerr << "Error: " << glewGetErrorString(err) << endl;
//	}
//	else {
//		if (GLEW_VERSION_3_3)
//		{
//			cout << "Driver supports OpenGL 3.3\nDetails:" << endl;
//		}
//	}
//	err = glGetError(); //this is to ignore INVALID ENUM error 1282
//
//	GL_CHECK_ERRORS
//
//		//print information on screen
//		cout << "\tUsing GLEW " << glewGetString(GLEW_VERSION) << endl;
//	cout << "\tVendor: " << glGetString(GL_VENDOR) << endl;
//	cout << "\tRenderer: " << glGetString(GL_RENDERER) << endl;
//	cout << "\tVersion: " << glGetString(GL_VERSION) << endl;
//	cout << "\tGLSL: " << glGetString(GL_SHADING_LANGUAGE_VERSION) << endl;
//
//	GL_CHECK_ERRORS
//
//	glutCloseFunc(this->OnShutdown);
//	glutDisplayFunc(this->OnRender);
//	glutReshapeFunc(this->OnResize);
//	glutMouseFunc(this->OnMouseDown);
//	glutMotionFunc(this->OnMouseMove);
//	glutIdleFunc(this->OnIdle);
//
//	//call main loop
//	glutMainLoop();
//}
//
//void GraphicsWindow::OnMouseDown(int button, int s, int x, int y)
//{
//
//}
//
//void GraphicsWindow::OnMouseMove(int x, int y)
//{
//
//}
//
//void GraphicsWindow::OnResize(int w, int h)
//{
//
//}
//
//void GraphicsWindow::OnIdle()
//{
//
//}
//
//void GraphicsWindow::OnRender()
//{
//
//}